Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

SystemC: моделювання функціонування автомату Мура.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2007
Тип роботи:
Лабораторна робота
Предмет:
Проектування комп'ютерних систем та мереж
Група:
КСМ-5

Частина тексту файла

Міністерство освіти та науки України Національний університет ,,Львівська політехніка” Кафедра електронних обчислювальних машин  Звіт до лабораторної роботи№6 з дисципліни: ,,Проектування комп'ютерних систем та мереж” виконав ст.гр.КСМ-5 Львів – 2007 Тема: SystemC: моделювання функціонування автомату Мура. Мета: Ознайомитись з моделлю автомату Мура у SystemC. Завдання: 1.Заванажити до середовища SystemC проект moore та запустити його на виконання. 2.Ознайомитись з результатами та зробити висновки. Теоретичні відомості: Автомат Мура у SystemC моделюється з використанням одного процесу для логіки наступного стану, регістра стану та вихідної логіки. Це є синхронний процес з умовою переходу, що має виходи, зв’язані з кожним можливим варіантом переходу та входи, які визначають наступний стан. В поданому нижче прикладі сигнал moore_state використовується для моделювання автомату Мура, що має чотири можливі стани:  Рисунок1. Приклад графу автомату Мура. Приклад реалізації автомату Мура у SystemC: / / File: moore.h #include "systemc.hn SC-MODULE (moore) { sc-in<bool> a, clk, reset; sc-out<bool> z ; enum state-type {SO, sl, s2, s3) ; sc-signal<state-type> moore-state; void prc-moore ( ) SC-CTOR (moore) { SC-METHOD (prc-moore); sensitivepos << clk; } }; / / File : moore. cpp #include "moore.h" void moore : :prc-moore ( ) { if (reset) / / Synchronous reset. moore-state = so; else switch (moore-state) { case SO: z = 1; moore-state = a ? SO : s2; break; case sl: z = 0; moore-state = a ? SO : s2; break; case s2: z = 0; moore-state = a ? s2 : s3; break; case s3: z = 1; moore-state = a ? sl : s3; break; } }  Рисунок2. Схема реалізації автомату Мура (результат синтезу). Виконання лабораторної роботи: 1.Лістинг проекту: // File moore.h Declaration #include "systemc.h" SC_MODULE(moore) { sc_in<sc_logic> a_in_pin, reset_in_pin; // input ports sc_in_clk clk_in_pin; // clock input sc_out<sc_logic> z_out_pin; // output port sc_out<sc_uint<2> > state_out_pin; // port for monitoring // Internal variable enum state_type {s0, s1, s2, s3}; sc_signal<state_type> moore_state; sc_uint<2> state_int; // FSM processes void state(); // synchro process void output(); // combi process // Constructor SC_CTOR(moore) { SC_METHOD(state); sensitive_pos << clk_in_pin; SC_METHOD(output); sensitive << clk_in_pin; } }; // File moore.cpp Implementation #include "moore.h" void moore::state(){ bool cond1, cond2; if (reset_in_pin->read()== sc_logic_1) cond1 = true; else cond1 = false; if (a_in_pin->read()== sc_logic_1) cond2 = true; else cond2 = false; if (cond1) //->read()) moore_state = s0; else switch(moore_state){ case s0: moore_state = cond2 ? s0:s2; break; case s1: moore_state = cond2 ? s0:s2; break; case s2: moore_state = cond2 ? s2:s3; break; case s3: moore_state = cond2 ? s1:s3; break; } } void moore::output(){ switch(moore_state){ case s3: z_out_pin->write(sc_logic_1); state_int = 3; break; case s0: z_out_pin->write(sc_logic_1); state_int = 0; break; case s1: z_out_pin->write(sc_logic_0); state_int = 1; break; case s2: z_out_pin->write(sc_logic_0); state_int = 2; break; } state_out_pin->write(state_int); } // File mon_stim.h Declaration #include <systemc.h> SC_MODULE(mon_stim) { sc_in_clk clk_in; sc_out<sc_logic> a_out; sc_out<sc_logic> reset_out; sc_in<sc_logic> z_in; sc_in<sc_uint<2> > state_in; bool stimul; bool reset_int; // Stimulus and Monitor processes void monitor(); void stim(); // Constructor SC_CTOR(mon_stim) { SC_METHOD(monitor); sensitive_neg << clk_in; SC_THREAD(stim); sensitive_neg << clk_in; } }; // Implementatio...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини